Описание плагина:
Плагин может сохранять снимок экрана (скриншоты) в формате .png в каталог картинок.
После сохранения, такой снимок можно выводить на экран игры командой мейкера $gameScreen.showPicture(...);
Каталог сохранения скринов, при желании, можно менять (но тогда мейкер их не отобразит).
Нюансы:
1) В случае совпадения имен, новый скрин затирает старый.
2) После перезагрузки игры директория для сохранения картинок меняется на стандартную папку мейкера (или же ту, что в параметре плагина).
3) После создания снимка, подождите минимум 15 кадров перед его показом командой $gameScreen.showPicture(...).
4) Плагин предназначен для работы ТОЛЬКО в экспортированном на компьютер проекте (т.е. в среде NW.js) и на веб-сервере, телефоне, эмуляторе - работать не будет.
Использование плагина:
В параметре можно указать другой каталог хранения снимков.
Команды(в эвенте команда "Скрипт"): DKR.ScreenPhotographer.makePhoto('photoName') - сохраняет снимок экрана с указанным в скобках названием. DKR.ScreenPhotographer.changePhotosDir('newDir') - меняет директорию сохранения снимков.
Код:
СпойлерКод версии 1.0:
Код:
var Imported = Imported || {};
Imported.DKR_ScreenPhotographer = true;
var DKR = DKR || {};
DKR.ScreenPhotographer = DKR.ScreenPhotographer || {};
DKR.ScreenPhotographer.version = 1.0;
DKR.ScreenPhotographer.parameters = PluginManager.parameters('DKR_ScreenPhotographer');
//----------------------------------------------------------------------------
/*:
* @plugindesc (v.1.0.0) Плагин может сохранять снимок экрана (скриншоты) в формате .png в каталог картинок.
*
* @target MV, MZ
* @author DarchanKaen
*
* @help
* DKR ScreenPhotographer
* ----------------------------------------------------------------------------
* ---Общая информация:
* Плагин может сохранять снимок экрана (скриншоты) в формате .png в каталог картинок.
* После сохранения, такой снимок можно выводить на экран игры командой мейкера $gameScreen.showPicture(...);
* Каталог сохранения скринов, при желании, можно менять (но тогда мейкер их не отобразит).
* ---Параметры плагина:
* Можно указать дерикторию, относительно корня игры, куда сохранять снимки.
* Например: './img/'
* ---Команды(в эвенте команда "Скрипт"):
* DKR.ScreenPhotographer.makePhoto('photoName') - сохраняет снимок экрана с указанным в скобках названием.
* DKR.ScreenPhotographer.changePhotosDir('newDir') - меняет директорию сохранения снимков.
* ---Нюансы:
* В случае совпадения имен, новый скрин затирает старый.
* После перезагрузки игры директория для сохранения картинок меняется на стандартную папку мейкера.
* После создания снимка, подождите минимум 15 кадров перед его показом командой $gameScreen.showPicture(...).
* ----------------------------------------------------------------------------
* @param photosDir
* @type text
* @desc Каталог, куда сохраняются скриншоты (дефолтный: ./img/pictures/ )
* @default ./img/pictures/
*/
( () => {
//----DATA: BEGIN
const gui = require('nw.gui');
const fs = require('fs');
let photosDirectory = DKR.ScreenPhotographer.parameters['photosDir'] || './img/pictures/';
//----DATA: END
//----LOGIC: BEGIN
const savePhoto = (photoName) => {
try{
const win = gui.Window.get();
let src = `${photosDirectory}${photoName}.png`;
win.capturePage(
function(buffer){
fs.writeFile(src, buffer, function(err) {
if (err){ throw err; }
});
}, { format : 'png', datatype : 'buffer'}
);
}catch(error){
console.log('DKR.ScreenPhotographer: something wrong, can`t make photo! Error:', error);
}
}
const setPhotosDirectory = (dir) => {
photosDirectory = dir;
}
//----LOGIC: END
//----COMMANDS: BEGIN
DKR.ScreenPhotographer.makePhoto = function(photoName){
savePhoto(photoName)
}
DKR.ScreenPhotographer.changePhotosDir = function(dir){
setPhotosDirectory(dir);
}
//----COMMANDS: END
})();
Условия поставки плагина:
Поставляется AS-IS.
Вся ответственность при использовании - на Пользователе! !
Совместимость:
Плагин не затрагивает логику работы мейкера, и должен быть совместим с любыми плагинами.
Тем не менее, совместимость с другими плагинами не гарантируется.
СпойлерЛирическое отступление:
Такой плагин был для MV от Hudell, из серии "Orange...".
Но ссылку я не нашел, да и для MZ вроде его не переделали.
Ну, теперь есть альтернатива.
...Не знаю, когда еще в следующий раз плагин склепаю. От того протестил чуть лучше, вроде бы багов нет.
P.S:
Сделанный снимок нужно вызывать командой, в случае если он сделан "на лету", т.е. во время игры.
Если скрины вы сделали предварительно, до релиза-экспорта, то конечно существующую картинку можно вызвать и из редактора.
Последний раз редактировалось Darchan Kaen; 10.04.2022 в 10:56.
Причина: Важный нюанс. Обновлены ссылки, код очищен от мусора.
Вопрос:
Нарушает ли использование данного плагина правила RTP-конкурса?
С одной стороны, он позволяет использовать сторонние файлы (скриншоты).
С другой - сам же их и создает. ?
Когда в игре открываешь меню ведь тоже создаётся замыленный скриншот бекграунд, но потом в игре сразу удаляется. Его можно сохранить в памяти как спрайт и использовать. Если удалять сохранённые фотки этого плагина по выходу из игры отличий вроде как и нет.
В мв/мз есть возможность делать скрин карты.
И его можно использовать в игре.
Этот плагин не требует дополнительных ресурсов.
Так что всё вполне в рамках правил.
Социальные закладки